<?php
class MapaDAO extends GenericDAO  {

	function __construct() {
		$this->tabela["alteracao"] = array(	"id" 	=> 199,
											"nome" 	=> strtolower(substr(get_class(), 0, -3)));
	
		$this->tabela["consulta"]  = array(	"id" 	=> 207,
											"nome" 	=> "vw_" . strtolower(substr(get_class(), 0, -3)));
	}
	
	public function consultarPK($valor) {
	    $sql = "where id = :id";
	    $params['id'] = $valor;
	    return $this->consultar($sql, $params);
	}

	public function consultarQuadra($id_quadra) {
	    $sql = "where q_id = :quadra";
	    $params['quadra'] = $id_quadra;
	    return $this->consultar($sql, $params);
	}

	public function inserir($registro, $finalizarTransacao = true) {
		$res = null;
		if ($this->inserirRegistro($registro, $finalizarTransacao)) {
			$res['id'] = $this->ultimoId();
		}
		return $res;
	}
	
	public function excluir($id, $finalizarTransacao = true) {
		$pk['id'] = $id;
		return $this->excluirRegistro();	
	}
	
	public function alterar($registro, $finalizarTransacao = true) {
		$pk['id'] 		= $registro['id'];
		unset($registro['id']);
		return $this->alterarRegistro($registro, $pk, $finalizarTransacao);
	}
	
	public function incOcupados($q_id, $qtde, $finalizarTransacao = true) {
		$sql = "update mapa set ocupados = ocupados + :qtde where quadra = :quadra";
		$params['qtde'] = $qtde;
		$params['quadra'] = $q_id;
		return $this->execSQL($sql, $params, $finalizarTransacao);
	} 
	
	public function obterDimensoes() {
		$sql = "select (select max(coluna) from lote) col, (select max(linha) from rua) lin";
		$params = array();
		return $this->execQuery($sql, $params);
	}
	
	public function obterLotes() {
		$sql = "select l.codigo, l.sq_codigo, l.q_codigo, l.rua_nome, l.numero, l.construido, l.coluna, l.rua_linha, vl.ad_nome, (select count(*) from ocupante o where o.lote = l.id) ocupado from vw_lote l left join vw_vend_lote vl on l.id = vl.lote";
		$params = array();
		return $this->execQuery($sql, $params);
	}
}
?>